1
從命名空間到穩健的模組系統
AI020Lesson 6
00:00

在早期的 JavaScript 開發中, 命名空間污染 是一個重大障礙。當不相關的程式碼共享同一組全域變數名稱時,會發生無法預測的衝突。現代設計已從無結構的態度轉向 隔離的模組系統

1. 功能性隔離(立即執行函式表達式)

透過將程式碼包裝在一個 立即執行函式表達式 (IIFE)中,我們創造出一個私有作用域。像 names 這樣的變數被鎖在函式內部,無法存取全域環境。

(function() {
var internal = "secret";
console.log(internal);
})();

2. 基於物件的介面

為了讓外部世界能使用功能,模組會回傳一個物件,作為其 公開介面。這將相關的方法(例如 namenumber)整合到單一重新取得的全域變數之下。

私有作用域[names 陣列]介面name()、number()

3. 匯出模式

一種進階的變化是將一個 exports 物件傳遞至 IIFE。這讓模組能直接將其 API 附加至特定命名空間目標,提供模組被使用的彈性。

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>